// server/websocket/logs.ts
export default defineWebSocketHandler({
    open(peer) {
      console.log('WebSocket 连接已建立')
      
      // 发送欢迎消息
      peer.send(JSON.stringify({
        type: 'welcome',
        message: '日志 WebSocket 连接成功'
      }))
    },
  
    message(peer, message) {
      try {
        const data = JSON.parse(message.text())
        
        if (data.type === 'ping') {
          // 心跳响应
          peer.send(JSON.stringify({ type: 'pong' }))
        } else if (data.type === 'request_skills') {
          // 处理技能列表请求
          handleSkillsRequest(peer)
        }
      } catch (error) {
        console.error('WebSocket 消息处理错误:', error)
        peer.send(JSON.stringify({
          type: 'error',
          message: '消息格式错误'
        }))
      }
    },
  
    close(peer, event) {
      console.log('WebSocket 连接关闭')
    },
  
    error(peer, error) {
      console.error('WebSocket 错误:', error)
    }
  })
  
  // 处理技能列表请求
  async function handleSkillsRequest(peer) {
    try {
      // 这里调用你的技能列表接口逻辑
      const skillsData = await fetchSkillsFromDatabase()
      
      peer.send(JSON.stringify({
        type: 'skills_list',
        payload: skillsData,
        timestamp: new Date().toISOString()
      }))
    } catch (error) {
      console.error('获取技能列表失败:', error)
      peer.send(JSON.stringify({
        type: 'error',
        message: '获取技能列表失败'
      }))
    }
  }
  
  // 模拟从数据库获取技能数据
  async function fetchSkillsFromDatabase() {
    // 这里替换为你的实际数据库查询逻辑
    return [
      { id: 1, name: 'JavaScript', status: 'active', level: 'advanced' },
      { id: 2, name: 'Vue.js', status: 'active', level: 'advanced' },
      { id: 3, name: 'Nuxt.js', status: 'active', level: 'intermediate' }
    ]
  }